/** @odoo-module */
import { registry } from "@web/core/registry"
import { memoize } from "@web/core/utils/functions"

// 定义服务
export const tshirtService = {
  dependencies: ["rpc"],
  async: ["loadStatistics"], //标注一下提供异步的API，可以async可以是true，也可以是字符串列表。标志着：调用该服务的组件，如果被消耗，需要保留异步函数。
  start(env, { rpc }) { //定义服务的主要内容
    return {
      loadStatistics: memoize(() => rpc("/awesome_tshirt/statistics")) //memoize函数可以用来缓存数据。缓存统计数据
    }
  }
};

// registry是注册表，registry又有很多的子注册表，需要通过category("name")方法来获取（如果子注册表不存在，他会在运行时创建）。
// services服务注册表，包含所有应该被激活的服务
// .add方法用来创建一个新的注册表。用法：add(key, value[, options]) key是新条目的键，不能重复
// 下面这句话的意思是：在服务类型注册表中，创建一个新的 名字叫tshirtService的 注册表，
registry.category("services").add("tshirtService", tshirtService)